package com.example.apple.testdown;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.SeekBar;

import com.example.apple.testdown.entity.Person;
import com.example.apple.testdown.service.DownService;

public class MainActivity extends Activity {



    //以面向对象的思想做队列下载
    //首选第一步:当点击下载按钮的时候,首先从数据库通过id判断这条数据是不是存在
    //如果数据不存在,进行下载(通过开启service,通过查找数据库得到下载的list
    //如果 personList size >0;并且size == 1就开始下载,否则啥都不用管
    //这样做的目的是就为service只开启一次去下载,其余的下载都昂在队列里面去下载,只有当下载成功一个其余的才会去下载),
    //如果数据存在,就开始判断他的状态,如果是完整状态,就不做任何处理,或者跳转播放器,去播放,
    //如果是下载中的状态,设置状态为暂停下载,同时更新数据库,同时真正停止下载,
    //如果是暂停状态,开始继续下载


    SeekBar pro_main;


    MyRecever myRecever;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        pro_main = (SeekBar)findViewById(R.id.pro_main);

        //注册广播
        myRecever = new MyRecever();
        IntentFilter filter = new IntentFilter();
        filter.addAction(MyApplication.COURSE_RECEIVER_ACTION);
        registerReceiver(myRecever, filter);

        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {



                int userid = 1;

                //查找id是不是已经被添加进去
                Person person1 = MyApplication.db.findById("userid = " + userid, Person.class);

                if(null != person1){

                    clicli(userid,person1);

                }else {

                    Person person = new Person();

                    String url = "http://vfx.mtime.cn/Video/2016/10/03/mp4/161003123641934419_480.mp4";
                    //开始下载
                    person.setStatue(Person.DOWNLOGIN);
                    //设置下载路径
                    person.setUrl(url);
                    //设置缓存路径
                    person.setPath(MyApplication.getVideoDir() + "1.mp4");

                    //设置id
                    person.setId(1);
                    MyApplication.db.save(person);

                    //开启service
                    Intent intent = new Intent(MainActivity.this, DownService.class);
                    startService(intent);

                    Log.d("hhhhhhhh",url);

                }

            }
        });

    }


    //当点击发生的时候,首先判断状态,如果是等待下载,就加入到数据库库区下载,如果下载中就暂停下载,如果暂停下载就继续下载

    public void clicli(int userid,Person person) {


        switch (person.getStatue()) {

            case Person.COMPLETE://完成
                //跳转播放器

                break;
            case Person.DOWNLOGIN://下载中
                //下载中,更新状态暂停

                person.setStatue(Person.STOP_DOWN);
                MyApplication.db.update(person);

                DownService.handler.stop();

                break;
            case Person.WAIT_DOWN://未下载

//                String url = "http://vfx.mtime.cn/Video/2016/10/03/mp4/161003123641934419_480.mp4";
//                //开始下载
//                person.setStatue(Person.DOWNLOGIN);
//                //设置下载路径
//                person.setUrl(url);
//                //设置缓存路径
//                person.setPath(MyApplication.getVideoDir()+"1.mp4");
//
//                MyApplication.db.update(person);

                break;
            case Person.STOP_DOWN://停止下载
                //继续下载

                person.setStatue(Person.DOWNLOGIN);
                MyApplication.db.update(person);

                //当前有一个正在下载,那这个时候咱们就更新状态,
                //如果当前没有下载,启动服务区下载

                break;
        }


        //开启service
        Intent intent = new Intent(this, DownService.class);
        startService(intent);

    }


    class  MyRecever extends BroadcastReceiver{

        @Override
        public void onReceive(Context context, Intent intent) {

            String vid = intent.getStringExtra(MyApplication.VID);
            long downloaded = intent.getLongExtra(MyApplication.DOWNLOADED, 0);
            long fullsize = intent.getLongExtra(MyApplication.FULLSIZE, 0);


            pro_main.setProgress((int) downloaded);
            pro_main.setMax((int) fullsize);
        }
    }
}
